package zuochengyun;

import java.util.Stack;

public class SortStackByStack {

	/**
	 * 用一个辅助栈来排序另一个栈（从栈顶到栈底递减），核心思想是栈中的元素小于help时，入栈
	 * 如果大于，那么将help中小于cur的元素全部入栈到stack中，然后将cur入help栈
	 * @param stack
	 */
	public void sortStackByStack(Stack<Integer> stack){
		Stack<Integer> help = new Stack<>();
		int cur;
		while(!stack.isEmpty()){
			cur = stack.pop();
			while (!help.isEmpty() && help.peek() < cur) {
				stack.push(help.pop());
			}
			help.push(cur);
		}
		while(!help.isEmpty()){
			stack.push(help.pop());
		}
	}
}
